package com.example.service;

import com.example.entity.LoginEntity;
import com.example.entity.LoginResponse;
import com.example.entity.User;

public interface UserService {
    /**
     *用户登录
     * @param user 用户信息
     * @return 返回登录状态码
     */
    Integer login(LoginEntity user);

    /**
     * 判断用户注册邮箱是否存在
     * @param email 邮箱号
     * @return 0表示无，1表示有
     */
    Integer emailExist(String email);

    /**
     * 用户注册
     * @param user 用户信息
     */
    void register(User user);

    void logout(String token, Integer id);

    boolean usernameExist(String username);

    Integer getIdByUsername(String username);

    /**
     * 验证原密码是否正确
     * @param id 用户id
     * @return 比较信息
     */
    String identifyPassword(Integer id, String oldPwd);

    /**
     * 更新密码
     * @param id 用户id
     * @param newPwd 新密码
     */
    void updatePassword(Integer id, String newPwd);

    /**
     * 获取用户的个人信息
     * @param id 用户id
     * @return 用户的基本信息
     */
    LoginResponse findUserInfo(Integer id);

    /**
     * 更新用户的基本信息
     * @param user 用户更新的数据
     */
    void updateUserInfo(User user);

    void updateProfile(String profile, Integer id);
}
